package main

import "fmt"

/**
	多态--是动态类型的体现
	---只有当运行的时候才能确定具体的类型
 */

type II interface {
	Call()
}

type O1 struct {

}

type O2 struct {

}

// Call O1 的call
func (o O1) Call() {
	fmt.Println("call.. O1")
}

// Call O2 的Call
func (o O2) Call() {
	fmt.Println("call.. O2")
}

//多态的演示
func main() {
	var ii II
	ii = O1{}
	ii.Call()

	ii = O2{}
	ii.Call()
}